#ifndef DXINPUT_H
#define DXINPUT_H

#include "DXEngine.h"

#define LEFT_CLICK 0
#define RIGHT_CLICK 1
#define MIDDLE_CLICK 2

class DXKeyboard
{
	public:
		//Constructors
		DXKeyboard (void);
		DXKeyboard (HINSTANCE hInstance, HWND hWnd);
		//Destructor
		~DXKeyboard (void);

		//Public Methods
		BOOL Init (HINSTANCE hInstance, HWND hWnd);
		void Update (void);
		BOOL IsKeyDown (DWORD Key);

	private:
		//Private Methods

		//Private Members
		LPDIRECTINPUT8 Interface;
		LPDIRECTINPUTDEVICE8 Keyboard;
		BYTE KeyStates[256];
};

class DXMouse
{
	public:
		//Constructors
		DXMouse (void);
		DXMouse (HINSTANCE hInstance, HWND hWnd);
		//Destructor
		~DXMouse (void);

		//Public Methods
		BOOL Init (HINSTANCE hInstance, HWND hWnd);
		void Update (void);
		BOOL IsMouseClicked (DWORD Button);
		LONG GetMouseXChange (void);
		LONG GetMouseYChange (void);
		LONG GetMouseWheelChange (void);

	private:
		//Private Members
		LPDIRECTINPUT8 Interface;
		LPDIRECTINPUTDEVICE8 Mouse;
		DIMOUSESTATE MouseStates;
};

#endif